id: task-181 title: Add statistics dashboard to web UI status: Done assignee: [] created_date: '2025-07-12' updated_date: '2025-08-03 17:20' labels: [] dependencies:
- task-180 priority: medium
Description
Create a Statistics/Dashboard page in the web UI that displays project overview, task statistics, priority breakdowns, and activity metrics in a visual dashboard format with charts and interactive elements.
Acceptance Criteria
- [x] Add Statistics/Dashboard page route to web UI
- [x] Create /api/statistics endpoint for project metrics
- [x] Display status distribution with visual charts
- [x] Show priority breakdown with color-coded sections
- [x] Include completion percentage and progress indicators
- [x] Display recent activity timeline
- [x] Add interactive charts and data visualizations
- [x] Show project health metrics and trends
- [x] Include export functionality for statistics
- [x] Add navigation link in side menu
- [x] Use responsive design for mobile and desktop
- [x] Handle loading states and empty project gracefully
Implementation Notes
What's New
- Added
/api/statisticsendpoint that reuses CLI logic - Created
Statistics.tsxdashboard component with interactive elements - Added navigation link with trending-up icon
- Tasks in recent activity and project health are clickable to open edit popup
Key Features
- Metrics: Total/completed tasks, completion %, drafts count
- Visualizations: Progress bar, status/priority distributions with mini charts
- Recent Activity: Clickable recently created/updated tasks
- Project Health: Compact summary with avg age, stale/blocked task indicators
- Loading: Realistic progress messages (2s intervals) matching CLI experience
Technical Implementation
- Shared Logic:
Core.loadAllTasksForStatistics()eliminates CLI/web duplication - Data Consistency: Same task loading, cross-branch checking, conflict resolution as CLI
- Performance: Single API call with parallel processing
- UX: Responsive design, dark/light theme support, proper error handling
Files Changed
src/server/index.ts- API endpointsrc/web/components/Statistics.tsx- main dashboardsrc/core/backlog.ts- shared statistics loading logicsrc/commands/overview.ts- refactored to use shared logic